import math

e = 0.8
i_l = 0.82
eta_b2 = 0.3
eta_d2 = 1.6
eta_b3 = 0
eta_d3 = 1.0
gamma1 = 17
d1 = 1
d2 = 1
d3=3
gamma2 = 9
fak = 150
fak2=85
fk = 1100
m = 80
H = 30
h = 2
gamma_g = 20
gamma_w = 10
'''
e: 孔隙比
i_l: 液化指数
eta_b2: 第二层基础宽度地基承载力修正系数
eta_d2: 第二层埋深地基承载力修正系数
eta_b2: 第三层基础宽度地基承载力修正系数
eta_d2: 第三层埋深地基承载力修正系数
gamma1: 第一层土的重度
d1: 第一层土的厚度
gamma2: 第二层土的重度
d2: 第二层土至基底的厚度
fak: 地基承载力特征值
fk: 修正地基承载力特征值
h: 基底埋置深度
gamma_g: 基础及回填土平均重度
gamma_w: 地下水重度
'''

# 地基承载力特征值
gamma_ml = (gamma1*d1+gamma2*(h-d1))/h
fa = fak + eta_d2*gamma_ml*(h-0.5)

# 选择地基尺寸
a0 = fk/(fa-(gamma_g*d1+(gamma_g-gamma_w)*d2))
a = 1.2*a0
print('初步选择基底面积为 %d m^2' %(a))

l = float(input('初步选择基础长度(m): '))
b = float(input('初步选择基础宽度(m): '))
a = l*b

if l>2 and b>2 and h>3 and h/b<=4:
    k1 = float(input('请输入宽度修正系数k1: '))
    k2 = float(input('请输入深度修正系数k2: '))
    fa0 = fak
    fa = fa0 + k1*gamma1(b-2) + k2*gamma2(h-3)
    print(fa)


# 验算地基承载力
gk = (gamma_g*h-gamma_w*d2)*l*b
mk = m + H*(d1+d2)
ek = mk/(fk+gk)

if ek>l/6:
    print('偏心距过大')

pk = (fk+gk)/a
pk_max = pk*(1+6*ek/l)

if pk_max<1.2*fa:
    print('持力层地基承载力过小')


# 软弱下卧层强度验算
pcz = gamma_ml*h + gamma2*(d1+d2+d3-h)
gamma_m2 = pcz/(d1+d2+d3)
faz = fak2 + eta_d3*gamma_m2*(d1+d2+d3-0.5)
theta = float(input('请输入地基压力扩散角: '))
theta = math.radians(theta)
pz = l*b*(pk-gamma_ml*h)/(l+2*d3*math.tan(theta))/(b+2*d3*math.tan(theta))

if pcz+pz<faz:
    print('软弱下卧层强度满足要求')
else:
    print('软弱下卧层强度不满足要求')